home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-08-29 | 89.6 KB | 2,071 lines |
- TO: INTEGRA COMPUTING, 910 Cobb Place Manor Dr., Marietta, GA 30066 PF 3.0
- Name __________________________________________________________
- Firm Name __________________________________ Phone ________________
- Address __________________________________________________________
- City _________________ State ___ Zip _______ County ________
- # Professionals _____ # Employees ____ Type of Practice ________________
- I first heard of Integra Computing from ___________________________________
- Prices and availability are subject to change without notice.
-
- Send unregistered** copies of the following:
- ___ copies of TickleX at $10 ea $_____
- ___ copies of MT-Tracker at $15 ea $_____
- ___ copies of Nifty at $10 ea $_____
- ___ copies of RAMdesk at $10 ea $_____
- ___ copies of ReSearch at $10 ea $_____
- ___ copies of BillPower at $10 ea $_____
- ___ copies of BillPower Plus at $15 ea $_____
-
- Send registered** copies of the following:
- ___ copies of RAMdesk at $50 [$25 w/TickleX/BillPower] $_____
- ___ copies of PopForm at $50 [$25 w/TickleX/BillPower/MT-Tracker]$_____
- ___ copies of ReSearch at $90 [+ $60 EXTRA to get 1 hr support]* $_____
- ___ copies of TickleX at $60 [+ $60 EXTRA to get 1 hr support]* $_____
- ___ copies of MT-Tracker at $90 [+ $110 EXTRA to get 2 hr support]* $_____
- ___ copies of BillPower at $100 [+ $110 EXTRA to get 2 hr support]* $_____
- ___ copies of BillPower Plus at $150 [+ $200 EXTRA to get 4 hr support]* $_____
-
- To have programs supplied on 3.5" media, enclose $5.00 extra PER PROGRAM $_____
- If you don't live in the U.S., Canada, or Mexico, please add $10.00 more $_____
-
- TOTAL ORDER $_____
- ___% Sales Tax for ___________ county, if you're a GA resident $_____
- Please enclose a CHECK or MONEY ORDER in US dollars -- GRAND TOTAL $_____
- (purchase orders unaccompanied by actual payments won't be accepted)
-
- I have read and agreed to all the terms of the Disclaimer found below.
-
- _______________________________________ _________________
- SIGNATURE DATE
- * Telephone support will be provided if you pre-purchase it with this order
- form. Such support must be used within a year. When you need assistance, you
- may reach Integra Computing (404-426-5735) most weekdays from 4:00pm to 6:00pm,
- Eastern Time. Because so much time is required to respond to mailed correspon-
- dence, letters requesting assistance may not be answered. If you need help,
- call -- don't write. But please don't even call unless you've pre-purchased
- support with this order form; if you call without having prepaid for support,
- each call will cost you a minimum of $15, plus $1.50 per minute.
- ** Unregistered software is programmed to remind you to register. Please
- note that no credit will be given at the time of registration for the cost of
- an unregistered copy.
- BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH, RAMDESK, NIFTY AND
- THEIR INSTRUCTIONS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND (INC-
- LUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE). NO ORAL OR WRITTEN INFORMATION OR ADVICE PROVIDED BY INTEGRA, ITS
- DEALERS, DISTRIBUTORS, AGENTS, OR EMPLOYEES SHALL CREATE A WARRANTY OF ANY
- KIND REGARDING BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH, RAMDESK, OR
- NIFTY, AND YOU MAY NOT RELY UPON SUCH INFORMATION OR ADVICE.
- NEITHER INTEGRA NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION,
- PRODUCTION, OR DELIVERY OF BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH,
- RAMDESK, OR NIFTY SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, OR
- INCIDENTAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF BUSI-
- NESS PROFITS, BUSINESS INTERRUPTION, AND LOSS OF BUSINESS INFORMATION) AR-
- ISING FROM THE USE OF (OR INABILITY TO USE) BILLPOWER, TICKLEX, MT-TRACKER,
- POPFORM, RESEARCH, RAMDESK, OR NIFTY.
- -- LICENSE:
- BillPower, TickleX, MT-Tracker, PopForm, ReSearch, Nifty, RAMdesk, and
- their documentation are copyrighted in 1985 to 1990 by R.A. Kelly. You may
- use any program on as many computers as you like, as long as it is never ins-
- talled with a SERIAL NUMBER (provided to you when you register as a user) on
- more than one computer at a time and as long as you do not alter the program in
- any way. You may distribute any of these programs to potential new users, pro-
- vided that you never divulge your SERIAL NUMBER to anyone, that you charge no
- fee for the program, and that you do not bundle it with (or use it as an incen-
- tive to purchase or lease) any other product or service, without the written
- consent of R.A. Kelly. All rights not expressly granted above are reserved in
- R.A. Kelly.
-
- -- DISCLAIMER:
- BillPower, TickleX, MT-Tracker, PopForm, ReSearch, Nifty, and RAMdesk may
- contain design and programming flaws. Before using ANY software on a regular
- basis, try estimating the potential harm that could result from your reliance
- upon it. Please don't use any of these programs unless you're willing to as-
- sume the associated risks, such as billing and report inaccuracies and data
- loss.
-
- BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH, NIFTY, RAMDESK, AND
- THEIR INSTRUCTIONS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND (INCLUD-
- ING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE). NO ORAL OR WRITTEN INFORMATION OR ADVICE PROVIDED BY INTEGRA, ITS
- DEALERS, DISTRIBUTORS, AGENTS, OR EMPLOYEES SHALL CREATE A WARRANTY OF ANY
- KIND REGARDING BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH, NIFTY, OR
- RAMDESK, AND YOU MAY NOT RELY UPON SUCH INFORMATION OR ADVICE. USE OF
- BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH, NIFTY,OR RAMDESK IS ENTIRELY
- AT YOUR OWN RISK.
- NEITHER INTEGRA NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION,
- PRODUCTION, OR DELIVERY OF BILLPOWER, TICKLEX, MT-TRACKER, POPFORM, RESEARCH,
- NIFTY, OR RAMDESK SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, OR
- INCIDENTAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF BUSI-
- NESS PROFITS, BUSINESS INTERRUPTION, AND LOSS OF BUSINESS INFORMATION)
- ARISING FROM THE USE OF (OR INABILITY TO USE) BILLPOWER, TICKLEX, MT-TRACKER,
- POPFORM, RESEARCH, NIFTY, OR RAMDESK, EVEN THOUGH INTEGRA MAY BE ADVISED THAT
- SUCH DAMAGES ARE POSSIBLE.
-
- -- AGREEMENT:
- As used in this Agreement, the terms "BillPower" ,"TickleX", "MT-Tracker",
- "PopForm", "ReSearch", "Nifty", and "RAMdesk", if not followed by a series or
- version designation, mean any version or series of BillPower, BillPower Plus,
- TickleX, MT-Tracker, PopForm, ReSearch, Nifty, or RAMdesk provided to you now
- or in the future.
- Your attempt to use BillPower, TickleX, MT-Tracker, PopForm, ReSearch,
- Nifty, or RAMdesk constitutes your acceptance of the terms set forth in the
- foregoing LICENSE and DISCLAIMER (which are incorporated into this Agreement).
- Your attempt to use BillPower, TickleX, MT-Tracker, PopForm, ReSearch, Nifty,
- or RAMdesk also constitutes your agreement that if you bring any legal action
- relating to BillPower, TickleX, MT-Tracker, PopForm, ReSearch, Nifty, or RAM-
- desk, 1) your sole remedy for the damages for which any defendant is found lia-
- ble (including direct, indirect, incidental and consequential damages) will be
- the recovery of whatever you paid to register as a user of the program, and 2)
- you will pay all defendants' attorneys fees and other legal costs if you do
- not prevail on all claims made in your pleadings.
- The terms of this Agreement are governed by Georgia law. If any of this
- Agreement's terms shall be held invalid to any extent, the remainder of this
- Agreement shall be unaffected by such invalidity.
-
- THE ABOVE PARAGRAPHS CONSTITUTE THE ENTIRE AGREEMENT BETWEEN YOU AND INTE-
- GRA. NO ORAL OR WRITTEN COMMUNICATION, INFORMATION, OR ADVICE FROM ANY SOURCE
- MAY ALTER THE AGREEMENT AS SET FORTH ABOVE.
- SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR OF LIABIL-
- ITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO SOME OF THE ABOVE EXCLUSIONS
- AND LIMITATIONS MAY NOT APPLY TO YOU. YOU MAY HAVE OTHER RIGHTS WHICH MAY
- VARY FROM STATE TO STATE.
-
-
-
-
- POPFORM
- (ver 3.0)
- TABLE OF CONTENTS
-
-
-
- INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
-
- USING POPFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
-
- FORMS OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
-
- THE TILDE CODES. . . . . . . . . . . . . . . . . . . . . . . . . . . 12
-
- PUTTING IT ALL TOGETHER . . . . . . . . . . . . . . . . . . . . . . 15
-
- FOR PROGRAMMERS ONLY . . . . . . . . . . . . . . . . . . . . . . . . 26
-
- PREPARING LONG FORMS . . . . . . . . . . . . . . . . . . . . . . . . 30
-
- COMMON ERRORS . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
-
- CUSTOMIZING POPFORM . . . . . . . . . . . . . . . . . . . . . . . . 32
-
-
-
-
- POPFORM
- INSTRUCTIONS
-
-
- If you're using an unregistered copy of the program,
- it will begin to beep at you in several weeks, reminding
- you that it's time to register. Don't worry -- no data
- will be destroyed, and you'll always be able to use the
- program, despite the fact that you delay registering.
-
-
-
- PopForm is a ram-resident program that can be called up from
- within nearly any application, grab information from the screen, and
- merge it into a form that's being sent either to a printer or to a
- disk file.
-
- PopForm's far more than just the perfect label/envelope printing
- tool. You see, unlike the typical single-purpose label or envelope
- printer, PopForm is actually programmable. It can execute subrou-
- tines, perform comparisons and conditional procedures, and much, much
- more. It'll even do simple page formatting, including margins all
- around, word wrap, page numbers, and one-line headers and footers.
-
- With this program, you can prepare forms of nearly ANY complex-
- ity, as long as the information to be plugged into them can be found
- on your computer's screen. And, of course, provided that you're wil-
- ling to grasp and implement some basic programming concepts. If you
- have simple needs, you'll find PopForm a simple dream-come-true. But
- it's nice to know that it also has the power to do heavy-duty chores,
- if you'll just take the time to do some programming and experimenting.
-
- Since PopForm can deal with numerical and string variables, it it
- can also be useful as you just browse through a database. When you
- come to a screen containing information you'd like to record, just
- call up PopForm and select a "form" you've prepared that pulls sel-
- ected data from the screen and sends it to a disk file, along with the
- running total for some important item. When you've finished your
- browsing, you can either print the disk file or edit it with your word
- processor.
-
-
- INTRODUCTION
-
- All modern word processors have the ability to prepare forms.
- They can also automate the preparation of these forms through the use
- of merge-printing. For instance, you can have your word processor
- read a list of addresses while it's printing a "blank" mailing label.
- As it does so, it will merge the address information into the blank
- form, resulting in a printed label containing an address.
-
- This merge-printing function is a tremendous time saver, but it
-
-
- INTRODUCTION 4
-
-
-
-
- is useful only if the blank form and the information to be merged are
- both accessible by your word processor. And, of course, your word
- processor's merge-printing function is available only if you're using
- the word processor.
-
- But what if it's your data base (or some other program), not your
- word processor, that contains the information you want merged into a
- form? Wouldn't it be nice if you could merge any information shown on
- your screen into forms that you can access on a pop-up basis?
-
- That's exactly what PopForm does. It's a memory-resident program
- that will read any industry-standard ASCII file and send it to your
- printer, no matter what database, spreadsheet, word processor, etc.,
- you may be using at the time. And if the file being printed contains
- appropriate coding, PopForm will pick information right off your
- screen and merge it into the stream of data going to your printer.
- Hence, with PopForm, your SCREEN, not a disk file, provides the infor-
- mation be merged into the form being printed.
-
- Let's say you have a canned letter that you'd like to send to
- a few of the hundreds of people whose vital information is kept in a
- data base file. Just enter the data base and conduct a search for the
- records you think you may want. As each person's record comes to the
- screen, you can decide whether you want to send the canned letter to
- him. If so, press PopForm's hotkey, make sure that the correct form
- (the canned letter) is being accessed, and print it. If you'd
- also/instead like to print a mailing label or a check, just select the
- appropriate form and merge-print it as well. And if you have differ-
- ent pre-printed forms already loaded into different printers, you can
- actually have PopForm automatically send each form it prepares to the
- proper printer.
-
- Let's assume that you're using BillPower Plus, Integra Comput-
- ing's time/billing/bookkeeping program. It includes a "People" module
- in which you can store thousands of names, addresses, birthdays, phone
- numbers, and lots of miscellaneous information. Every person's data
- screen has a similar layout: all the headings are the same, but the
- actual data differs from person to person. Because each record's
- screen layout is predictable, you could easily write any number of
- forms to be used with the data contained in the BillPower's "People"
- module. While a single record is being displayed, you could prepare a
- canned letter, a mailing label/envelope, and/or any other form you
- desire.
-
- In order to get you started, as well as to provide examples which
- you can study, PopForm is accompanied by several forms, among which
- are:
- a very simple form that demonstrates the program's
- basic principles (LABEL.FRM);
- a somewhat more complex form that produces envelopes
- on HP Laser printers (HP-ENV.FRM);
- a rather complex airbill form that demonstrates the use
-
-
- INTRODUCTION 5
-
-
-
-
- of "IF" and "GOTO" conditional processing (FEDEX.FRM);
- a form that demonstrates PF's ability to do page format-
- ting (WILL.FRM);
- a form that demonstrates PF's use in keeping up with
- running totals as you browse through a data base
- (TOTALS.FRM).
-
- You'll also find a simple text editor (FORMED.EXE) that may be useful
- in designing simple forms.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- INTRODUCTION 6
-
-
-
-
- USING POPFORM
-
- You should install PopForm into its own POPFORM directory on your
- hard disk.
-
- To use the program, you should first log into the directory con-
- taining PopForm. The reason you need to be in this directory is that
- PopForm will always look to the directory from which it's installed
- when it needs to find its forms. No matter what directory you may
- subsequently be logged into when you're running other applications,
- PopForm will always look for its forms in the subdirectory from which
- it was loaded.
-
- Once you're in the correct directory, load the program by typing
- "pf" at the DOS prompt. Once the program is in memory, you'll be re-
- turned to the DOS prompt. By default, the program saves memory by
- swapping itself to and from disk when you call it up and escape from
- it. This takes a few seconds every time you press the hotkey. But if
- you'd rather save time at the expense of more memory usage, you may
- install the program ty typing "pf ns" at the DOS prompt. The prog-
- ram's response will be instantaneous when installed in this fashion,
- but it will take up about 60K of memory, as compared to about 7K when
- the default disk-swapping is employed.
-
- Once the program's installed, it may be called up from within any
- application. To do so, you need simply press the hotkey (ALT-F, un-
- less you customize the program to recognize another). PopForm will
- then display the names of all forms available for printing. Type in
- the name of one, press the Enter key, and that form will be sent to
- the printer. PopForm will then disappear from the screen until you
- invoke it again with the hotkey.
-
- The next time you press the hotkey, PopForm will remember the
- last form it printed. To re-print that form, just press the Enter
- key. If you need to change the form, do that first, and THEN press
- the Enter key.
-
- By default, PopForm assumes that you'll be sending your form to a
- printer attached to your computer's LPT1 port. If your printer is
- attached to LPT2, you may press ALT-P to change the printer port.
- When you do, you'll notice that the port designation in the upper-
- right of the PopForm box will change. If you press ALT-P a second
- time, PopForm will be set to send the form to a disk file named "PCUE"
- (PrinterCUE). Pressing ALT-P a third time will tell PopForm to send
- the form to a disk file named "TEXT" (you may subsequently use your
- word processor to edit this file and send it to a printer). Pressing
- ALT-P a fourth time completes the circle and brings you back to LPT1.
-
- If you've been sending a series of forms to the Printer Cue
- (PCUE), you may easily have that file printed just by pressing Ctrl-P.
- But before you press Ctrl-P, make sure that you've informed PopForm to
- stop sending its output to PCUE. It doesn't make sense to send PCUE's
-
-
- USING POPFORM 7
-
-
-
-
- contents to itself, so press ALT-P until the appropriate printer (LPT1
- or LPT2) appears in the upper-right. THEN, press Ctrl-P to send the
- contents of the printer cue to the printer.
-
- To exit PopForm and return to your application without printing a
- form, press the ESC key. To actually UNLOAD PopForm from memory (so
- that it will no longer be accessible by your pressing the hotkey),
- press ALT-X.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- USING POPFORM 8
-
-
-
-
- FORMS OVERVIEW
-
- USING PopForm is a snap, but DESIGNING FORMS will be another mat-
- ter until you become accustomed to it.
-
- All forms used by PopForm must be located in the POPFORM direc-
- tory (or whatever other directory you place PopForm into). And each
- form must have the ".FRM" file name extension (eg: "label.frm", "let-
- ter.frm", "check.frm").
-
- Each form must have been prepared as an industry-standard ASCII
- file. Most modern word processors can produce this type of file, but
- generally not unless you specifically request it. If you don't speci-
- fy an ASCII file, your word processor is likely to produce a file in
- it's proprietary format, which is unlike that used by all other word
- processors. If you specify an ASCII file, however, PopForm and most
- other word processors will be able to read it. So study your word
- processor's manual to learn how to produce ASCII files.
-
- Just in case your word processor makes it difficult for you to
- prepare ASCII files, PopForm is accompanied by a relatively simple
- text editor called FORMED. It's handy for making small forms, but
- you'll probably need a full-featured word processor for the big ones.
-
- Each form will have several spots where you will want to substi-
- tute information from the screen. At each such spot, you must provide
- an appropriate code. As PopForm reads the form file, it will encoun-
- ter these codes and merge information from the screen at those spots.
-
- A PopForm code always BEGINS and ENDS with a tilde (~). There
- are several types of codes that may be placed between the two tildes,
- the most commonly used of which is the Screen Specification. When
- PopForm encounters a Screen Specification, it will read the screen
- positions specified and perform whatever process the tilde code dir-
- ects. If the tilde code contains NOTHING BUT a Screen Specification
- (that is, no other directive except, perhaps, a Write Length), PopForm
- will simply send the data extracted from the screen to the printer.
- If, however, the tilde code directs PopForm to do some sort of compar-
- ison or mathematical operation with the the screen data, the approp-
- riate operation will be performed without anything being sent to the
- printer. So, if you want to send screen data to the printer, all you
- have to do is to place a Screen Specification between two tildes. If
- the tilde code has any other directives (other than a Write Length),
- nothing will be written.
-
- A Screen Specification is enclosed within parentheses, and it
- consists of two parameters, each separated by a comma: 1) either a
- keyword or a screen location, and 2) the Read Length (number of char-
- acters to read from the screen). If the Read Length is specified as
- zero, (or omitted altogether) PopForm will read to the end of the
- FIRST WORD, regardless of its length, and then stop reading.
- Examples:
-
-
- FORMS OVERVIEW 9
-
-
-
-
-
- ~("Name: ",20)~ tells PopForm to find "Name: " on the
- screen, read the next 20 characters, and
- print them.
- ~("Name: ")~ tells PopForm to find "Name: " on the
- screen, read the next word, and print it.
-
- Another type of data that is frequently used is the Write Length,
- which informs PopForm how many characters to write to the printer. It
- may be used in conjunction with a Screen Specification or any other
- tilde code that will result in something being sent to the printer.
- If the Write Length is smaller than the length of the information
- to be written, that information will be truncated. If the Write
- Length is greater than the data length, PopForm will add extra spaces
- (padding) at the end of the data. A write length of zero (or no Write
- Length specification at all) will tell PopForm to write exactly as
- many characters as are contained in the data to be written, no more
- and no less.
-
- A Write Length is always enclosed in square brackets. If it's
- used, it should be placed within the tilde code before the the item
- specified to be written, such as a Screen Specification (which, remem-
- ber, is placed within parentheses, not brackets).
-
- ~[30]("Name: ",20)~ tells PopForm to find "Name: " on the
- screen, read the next 20 characters,
- print them, and then add another 10
- blank spaces.
-
- Take a look at the LABEL.FRM file provided with PopForm. It's a
- very simple example of the use of screen specifications.
-
-
- - Screen layouts
-
- Of course, Screen Specifications are useful only if you know the
- screen arrangement with which a particular form will be used. There-
- fore, each form you prepare with your word processor will assume a
- certain screen layout. You can have a separate form for each type of
- layout you anticipate being displayed at the time the form is needed.
- Similarly, you can have many types of forms set up for each individual
- layout.
-
- Some sample forms are provided with PopForm. Also provided is a
- file called TESTDATA. Each of the provided forms (except the will) is
- designed to work with TESTDATA, which may be viewed as a sample data
- base screen. If you'll look at TESTDATA, you'll see that information
- is arranged haphazardly on the screen. This unusual layout is pro-
- vided just to demonstrate that PopForm will find data, no matter where
- it has been strewn onto the screen. If you're likely to use PopForm
- with a number of different main applications, you'll appreciate the
- fact that PopForm will find the data you want, no matter where it's
-
-
- FORMS OVERVIEW 10
-
-
-
-
- displayed.
-
- Now look at CHECK.FRM. This is a check that has been designed
- for use with Epson-compatible printers. One of that file's codes is
-
- ~[25]("payee: ",25)~
-
- This tilde code contains both a Write Length and a Screen Specif-
- ication. It tells PopForm to look for the character sequence,
- "payee: ", on the screen. When it finds that sequence, PopForm should
- then read the NEXT 25 characters and then print 25 (all of them, in
- this case) of those characters before reading and printing anything
- else from the CHECK.FRM file. If your screen happens to be displaying
- anything (such as TESTDATA) with the sequence, "payee: ", the approp-
- riate substitution will take place.
-
- Remember, unlike other types of data that can be placed within
- tilde codes, Screen Specifications are enclosed in parentheses, and
- Write Lengths are enclosed within square brackets. Examples:
-
- ~"payee: ",25~ NO - Screen Specifications must be in parens
- ~("payee: ",10)~ ok - looks for "payee: ", reads 10 charac-
- ters, writes all 10, since no Write
- Length given
- ~15("payee: ",25)~ NO - Write Lengths must be in brackets
- ~[9]("payee: ",25)~ ok - reads 25 characters, writes 9 of them
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FORMS OVERVIEW 11
-
-
-
-
- THE TILDE CODES
-
- Though the Screen Specifications and Write Lengths covered in the
- last section are the codes you will most frequently use, there are
- other things you may specify with tilde codes. Each will be described
- in detail later, but here's a brief explanation of each:
-
- DATE Read today's date from the computer's memory, not
- the screen, and send it to the printer.
- WEEKDAY Read today's weekday from the computer's memory,
- not the screen, and send it to the printer.
- TIME Read the current time from the computer's memory,
- not the screen, and send it to the printer.
- NEWPAGE Tells PopForm to send a form feed instruction to the
- printer, so that a new sheet of paper will be fed.
- MARGINS t,l,b,r Sets each printed page's top, left, bottom, and right
- margins to t,l,b, and r, respectively.
- HD x,y PopForm will place header y at the top of each page
- it prints and then print x blank lines.
- FT x,y PopForm will place footer y at the bottom of each page
- it prints and ensure that there are x blank lines
- between it and the preceding text.
- WRAP ON Turns word wrap on. When ON, Popform will ignore all
- carriage returns in the form being printed and
- determine for itself when to issue a carriage return.
- WRAP OFF Turn word wrap off.
- < ~<~ forces a carriage return and line feed, whether
- or not word wrap is on.
- + If ~+~ is the last thing on a line, it tells PopForm
- to join that line with the following one. No line
- feed or carriage return will be sent to the printer
- between these two lines.
- \ If ~\~ is the last thing on a line, it tells Popform
- that the following line is to overprint the current
- one. Therefore, a carriage return, but no line
- feed, will be sent to the printer between the two
- lines.
- CENTER x Tells PopForm to center all items picked from the
- screen. Each item will be centered on column x.
- Centering will continue until a CENTER OFF code
- is encountered.
- CENTER OFF Turns off centering.
- PRINTCODE x Send printer control decimal code x to the printer.
- C-cc Go to column cc on the row where the cursor is
- currently located and start reading (cc must be
- 2 digits). Whatever is found there will be printed.
- R-rr Go to row rr on the screen and start reading at
- the column where the cursor is presently located
- (rr must be 2 digits). Whatever is found there
- will be printed.
- RC-rrcc Go to row rr and column cc and start reading (rr
- and cc must each be 2-digit numbers). Whatever is
-
-
- THE TILDE CODES 12
-
-
-
-
- found there will be printed.
- WRITELN x Display message x in PopForm's box. If nothing is
- already displayed, the message will be located on
- the top line; otherwise, it will be put onto the
- second line. Only two lines can be displayed at
- one time.
- INPUT x Prompt the user for keyboard input by displaying
- message x. Whatever the user keys in will be
- sent to the printer, except for a carriage return.
- BLOCK Allow the user to "block off" a portion of the current
- screen and send that block's text to the printer.
- NEWSCREEN x Tells PopForm to display message x, wait for you to
- press a key, and then temporarily exit. This allows
- you to call up another screen of data before for
- the current form to use. When you re-enter PopForm,
- it will pick up where it had left off just before
- exiting. If x is missing, PopForm will exit without
- displaying a message.
- LABEL x Marks a position within the file. "x" is the
- number or short word you wish to assign to the
- position.
- GOTO x Stop printing and skip to the position in the form
- defined by label x. Then, begin printing again.
- GOSUB x Like GOTO, but will cause PopForm to automatically
- RETURN pick up where it left off before performing the
- subroutine beginning at label x and ending with a
- RETURN command.
- DO Defines a DO loop that contains everything between
- UNTIL COUNT x the "DO" and "UNTIL COUNT x" statements. The
- DO loop will be repeated x times.
- NUMx PopForm keeps 9 numerical variables to which you
- may assign values. They are called NUM1...NUM9.
- Each always starts with a value of zero when a new
- form is being prepared, but you may alter them
- through addition, subtraction, multiplication,
- division, and clearing ( +, -, *, /, cc ).
- WRDx PopForm keeps 9 alphanumeric variables to which you
- may assign characters strings. They are called
- WRD1...WRD9. Each always starts out blank when a
- new form is being prepared, but you may alter them
- through addition, subtraction, and clearing
- ( +, -, cc ).
- ESC This is the character that results when the ESC key
- is pressed. It may be used when making comparisons
- in an IF statement (eg: IF the ESC key is pressed,
- then do so-and-so).
- DECIMALS x Defines the precision with which each NUM variable will
- be printed. x is the number of decimal places
- desired.
- SENDTO x Send the form to a disk file named x, instead of to
- your primary printer. If you want to send the form
- to another PRINTER (not a file), x should be "LPT1",
-
-
- THE TILDE CODES 13
-
-
-
-
- "LPT2", "LPT3", or "LPT4".
- FILE x Go to disk file x and print it. The file must be
- located in the same directory as PopForm's other
- form files. Be sure to specify a full file name,
- including the extension.
- IF x > If number x is greater than the number defined by the
- following keyword (or screen coordinates), then
- execute the next tilde code sequence. Otherwise,
- DO NOT execute the next tilde code sequence.
- IF x < If number x is less than the number defined by the
- following keyword (or screen coordinates), then
- execute the next tilde code sequence. Otherwise,
- DO NOT execute the next tilde code sequence.
- IF x = If phrase x is contained within the phrase defined by
- the following keyword (or screen coordinates), then
- execute the next tilde code sequence. OR, if
- number x is the equivalent of the number defined by
- the following keyword (or screen coordinates), then
- execute next tilde code.
- IF x <> If phrase x is not contained within the phrase defined
- by the following keyword (or screen coordinates),
- then execute the next tilde code sequence. OR, if
- number x is not the equivalent of the number defined
- by the following keyword (or screen coordinates),
- then execute next tilde code.
- IF x ^ a,b,c... If number x equals number a, b, or c, etc., then
- execute next tilde code.
- IF x | a,b,c... If number x does not equal number a, b, or c, etc.,
- then execute next tilde code.
- { x } A tilde code containing nothing but comments enclosed
- within curly brackets will be ignored by PopForm.
- You may use this feature to document your forms,
- without having to worry about your comments' being
- printed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- THE TILDE CODES 14
-
-
-
-
- PUTTING IT ALL TOGETHER
-
-
- - In General
-
- A simple form can be slapped together in no time. A mailing
- label is a good example. As your needs become more complex, however,
- you'll find yourself using PopForm's programming features to flash
- prompts onto the screen, compare screen data with other information,
- perform subroutines, etc. A complex form could conceivably take many
- hours (even days) to develop. Telling PopForm when to print what, and
- on which line to print it may be tricky. But it CAN be done with some
- perseverance. So please study the remainder of this manual and de-
- velop some practice forms, so that you can experiment with each of
- PopForm's specialized codes. Good luck.
-
-
- - Keywords and Screen Locations
-
- If the data you want to insert in your form always follows a par-
- ticular keyword, screen coordinates aren't important; PopForm will
- find the data, no matter where it may appear on the screen if you
- supply it with the keyword (eg: "Street: ").
-
- PopForm is not case sensitive when it's scanning the screen for a
- keyword you've supplied. That is, capitalization doesn't make any
- difference to PopForm when it's looking for a keyword. But what it
- sends to the printer will be EXACTLY what is found on the screen fol-
- lowing the keyword.
-
- An alternative to a keyword search is to specify the exact screen
- coordinates where the data you want may be found. Screen coordinate
- numbering begins in the upper left corner, whose coordinate is "0101"
- (row 01, column 01).
-
- Let's assume that you have your data arranged in an array (a
- spreadsheet, for instance), and that there are no predictable key-
- words. Wouldn't it be nice to be able to move the cursor to a speci-
- fic row and merge the data on that row into your form?
-
- The "C-cc" code does just that. The "cc" portion of the code
- specifies the COLUMN (two digits, please) at which the data you want
- to merge begins. The ROW is defined as that where the cursor was lo-
- cated just before popping into PopForm. Take a look at RPRTCARD.FRM,
- a simple report card whose data also happens to be taken from the
- TESTDATA file. You'll note that the "Grade" item is on the line
- following "Student". But when it prints out, you'll notice that both
- items are on the same line (see the "line overwrites" discussion in a
- subsequent section).
-
- To use the RPRTCARD form, use your word processor to bring TEST-
- DATA to the screen. Then cursor down to any of the lines containing
-
-
- PUTTING IT ALL TOGETHER 15
-
-
-
-
- student names. Pop into PopForm, select the RPRTCARD form, and press
- the Enter Key. That line's data will be merged into the form. Select
- another student, and try again, if you like.
-
- The "R-rr" code works the same sort of magic for rows. Here,
- the "rr" portion of the code specifies the ROW (two digits) at which
- the data you want to merge begins. The COLUMN is defined as that
- where the cursor was located just before popping into PopForm.
-
- What if you want to specify an exact row and column, neither of
- which depends upon cursor location? Answer: the "RC-rrcc" code.
- Here, both the row ("rr") AND column ("cc") are specified, each in two
- digits.
-
- Remember, Read and Write Lengths of zero have special meanings.
- A Read Length of zero normally tells PopForm that the number of char-
- acters to be read is not important, and that PopForm should, instead,
- read to the end of the FIRST WORD, regardless of its length. A Write
- Length of zero tells PopForm to print the string of characters you
- desire (such as a date found in the computer's memory, or several
- words picked from the screen), no more and no less.
-
-
- - Line Overwriting and Line Joining (VERY, VERY IMPORTANT!)
-
- These two features are invaluable. Read, practice, and master
- the contents of this section!
-
- As you prepare forms with your word processor, you'll find that
- estimating the proper spacing is sometimes difficult, especially if
- you intend to be printing upon typeset paper.
-
- You may find that the tilde codes you enter are so long that they
- distort the appearance of the form on your screen. Assume, for ins-
- tance, that the data you want printed is only 6 characters long, but
- that it takes 13 characters to define it with a tilde code. In this
- case, everything to the right of your code will appear 7 spaces out of
- alignment. PopForm doesn't care, but you may have difficulty visual-
- izing the form as you're constructing it.
-
- You'll notice that CHECK.FRM has a few lines that have missing
- border characters. Those lines are to be combined with the lines
- immediately preceding or following them. How? Line Joining and Line
- Overwriting. Line Overwriting allows your printer to over-print two
- or more lines of data on the same physical line on the paper. Though
- your screen may show 2 or three separate lines, Line Overwriting al-
- lows them all to be sent to the SAME line on your printer.
-
- Line Overwriting may be imposed upon PopForm by the placing a
- ~\~ code at the end of a line. When PopForm encounters ~\~ at the end
- of a line, it will immediately issue a carriage return, but no line
- feed, to the printer. That will cause the following line to overwrite
-
-
- PUTTING IT ALL TOGETHER 16
-
-
-
-
- the line containing ~\~.
-
- When trying out complex forms that you're preparing, you'll often
- find that the printout contains blank lines that you hadn't anti-
- cipated. All you have to do is to place a ~\~ at the end of the line
- preceding an unwanted blank. That will inform PopForm that a carriage
- return, but no line feed should be issued at the end of that line.
-
- If the form you're creating requires lines longer than 80
- characters, but your word processor or text editor doesn't permit
- them (as is the case with the FORMED program provided with PopForm),
- you'll need to "double up" by using the ~+~ code. If ~+~ is encoun-
- tered at the end of a line, PopForm will join that line with the one
- immediately following it. As your form is being printed, PopForm will
- send NEITHER a line feed NOR carriage return after a line ending with
- ~+~. Hence, the following line will be printed adjacent to (not over)
- the one containing ~+~. Be sure never to use the ~+~ code in the mid-
- dle of another code. Though one tilde code may immediately follow
- another, PopForm does not allow codes-within-codes.
-
- By the way, you may FORCE PopForm to issue BOTH a carriage return
- AND a line feed if you place a ~<~ at the end of a line. This feature
- is generally useful only if you're using Word Wrap (covered later).
-
- NOTE:
- When using your word processor to look at a disk file
- created by PopForm, you may notice what appear to be many
- blank lines that you hadn't "programmed". In many cases,
- these may not really be blank lines at all; your word pro-
- cessor may simply be displaying a blank line wherever the
- file has a carriage return, even though that carriage return
- MIGHT NOT be accompanied by a line feed. Don't worry. When
- the file is actually printed, it'll probably look much bet-
- ter. Remember that the forms you create with PopForm might
- make liberal use of carriage returns without line feeds.
-
-
- - Missing Data
-
- Sometimes the data you're looking for won't be anywhere on the
- screen. Look at LABEL.FRM, and you'll see that it consists of four
- name and address lines. The third line instructs PopForm to look to
- the screen for the sequence, "Street: ". That sequence, however,
- won't be followed by anything if TESTDATA is being displayed. You
- might, therefore, expect PopForm to print LABEL.FRM with a blank third
- line.
-
- But you'd probably prefer that PopForm omit the third line en-
- tirely when the information being sought for inclusion thereon is mis-
- sing. Well, that's exactly what the program will do in this case.
- Why? Because PopForm sees that next character following the keyword
- specification is "\". Whenever PopForm encounters a "\" right after a
-
-
- PUTTING IT ALL TOGETHER 17
-
-
-
-
- keyword or a screen coordinate, the program primes itself NOT to print
- the line if it cannot find what it's been told to find on the screen.
- Examples:
-
- ~("payee: ",10)~ - will send a line feed to the printer,
- whether or not it finds something on the
- screen immediately after "payee: "
- ~("payee: "\,10)~ - will send a line feed to the printer,
- ONLY IF PopForm finds something on the
- screen immediately after "payee: "
- ~(RC-0513\,10)~ - will send a line feed to the printer,
- ONLY IF PopForm finds something at
- row 05, column 13.
-
- For each line skipped while printing the body of a form, an extra
- line will be inserted at the end, thus ensuring correct spacing bet-
- ween successive forms.
-
- It makes sense to use "\" only when there is only one item on a
- form line, that item being defined by a the tilde code containing "\".
- Never use "\" if the line contains ANYTHING other than a single tilde
- code sequence.
-
-
- - Comments
-
- When you want to place comments into your form, but you don't
- want them to print, begin each with ~{ and end each with }~. This
- will allow you to make notes in each form about why you did such and
- such. Example:
-
- ~{The following lines contain the client's address}~
-
- The line shown above will not be printed when the forms is prepared.
- A comment must always be the last (if not the only) item found on a
- line.
-
-
- - Postponing Printing
-
- Normally, when you access PopForm, you will want a form printed
- at once. Thus, when you type in the name of a form, printing normally
- begins immediately.
-
- But it may occasionally be more convenient for you to grab data
- from one screen, then another, then another (and so on), AND THEN beg-
- in printing. This may be accomplished in two different ways.
-
- One is for you to simply press ALT-P until "PCUE" (the PrintCUE)
- appears in the upper right corner of PopForm's screen. If you do this
- before you select a form to "print", all output will be directed, not
- to the printer, but to the PrintCUE. Once you've sent your last form
-
-
- PUTTING IT ALL TOGETHER 18
-
-
-
-
- to the PrintCUE, press Ctrl-P to actually print all the stuff you've
- been saving up.
-
- The other way to postpone printing is for you to place the SENDTO
- code into your form. Example:
-
- ~SENDTO myfile~
- This goes to the "myfile" file
- ~SENDTO LPT3~
- This goes to the printer
-
- When PopForm encounters the top line's code, it will immediately re-
- direct its output to the "myfile" file, instead of to the printer.
- The next line would, therefore, be sent to "myfile". The third line,
- however, directs PopForm to begin printing again (through port LPT3,
- in this case).
-
- After using the SENDTO code, PopForm will assume that, when you
- press Ctrl-P, you will want to print the file specified by SENDTO, not
- the standard PrintCUE.
-
-
- - Multi-screen Forms
-
- You may occasionally have forms that pull their data from two or
- more screens. Therefore, PopForm needs a facility to allow you to
- temporarily exit, call up another screen, and then resume processing
- the form. ~NEWSCREEN x~ is the answer. It tells PopForm to display
- message x, wait for you to press a key, and then temporarily exit.
- After you've called up another screen of data and pressed PopForm's
- hotkey, the program will pick up where it had left off just before
- exiting. If x is missing, PopForm will exit without displaying a mes-
- sage or waiting for you to press a key. Examples:
-
- ~NEWSCREEN~
- ~NEWSCREEN "Press ENTER, get new screen, and come back"~
-
- The first line would cause PopForm to exit without displaying a
- message. The second line would display the message in quotes, wait
- for either the ENTER or ESC key to be pressed, and then exit. If you
- pressed the ESC key, PopForm would exit without expecting you to call
- up another screen; when you pressed the hotkey again, PopForm WOULD
- NOT pick up where it left off. The ESC key, therefore, allows you to
- break out of a repetitive cycle.
-
-
- - Centering
-
- If you want the data picked off the screen to be centered on the
- printed page, you may find the ~CENTER x~ code useful. When PopForm
- encounters that code, it primes itself to center ALL data picked off
- the screen until it encounters a ~CENTER OFF~ code. x is the column
-
-
- PUTTING IT ALL TOGETHER 19
-
-
-
-
- on which the data will be centered.
-
-
- - Margins
-
- PopForm normally sends to the printer exactly what is contained
- in the form being printed. If you'd like PopForm to add margins of
- its own, you should use the ~MARGINS t,l,b,r~ code. t,l,b, and r are
- not really margins at all. Rather, they are the top, left, bottom,
- and right lines and columns at which printing will begin and end.
-
- t is the line on which you wish to begin printing on each page.
- l is the column at which you want to begin printing each line. b is
- the line to which you wish to continue printing each page before a new
- sheet is automatically fed. r is the approximate column to which you
- wish to continue printing each line if you're using Word Wrap.
-
- t and b must be numbers between 1 and 255. l and r should be
- between 1 and the maximum number of columns your printer is set to
- print, minus 5. For example, if you printer is in 80-column mode, r
- must be no more than 75. Remember, r has no effect unless Word Wrap
- is ON.
-
- PopForm's defaults are: t=1, b=255, l=1, and r=255. If you des-
- ignate a zero for any of these items, PopForm will assume that item to
- be unimportant and reset it to its default value. When a default val-
- ue is set, PopForm gives up control over that item.
-
-
- - Headers and Footers
-
- If you want each page to have a header or footer, use the
- ~HD x,y~ or ~FT x,y~ code. y is the header or footer you want printed
- at the top or bottom of each page, and x is the minimum number of
- blank lines you need between the header of footer and the rest of the
- text on the page. If you want a page number printed within the header
- of footer, use the # character. The maximum number of characters
- allowed in a header or footer is 74. Example:
-
- ~FT 3,Page #~
-
- This will cause PopForm to place a footer at the bottom of each page,
- three lines below the main text that's printed. If the page being
- printed were page 21, the footer would say, "Page 21".
-
-
- - Word Wrap
-
- Sometimes, the information to be grabbed from the screen and
- placed into the form being printed will not be of a predictable
- length. That might make creating a form difficult, since you may not
- know how much space to allocate to variable-length data.
-
-
- PUTTING IT ALL TOGETHER 20
-
-
-
-
-
- Word wrap may help you here. When it's turned on, PopForm will
- completely ignore all line feeds contained in the form. Instead,
- PopForm will decide for itself when it needs to skip down to the
- next line. In order for this to work, you should place a ~MARGINS
- t,l,b,r~ code just before turning on Word Wrap with the ~WRAP ON~
- code. If you don't, PopForm will consider the left margin to be 1 and
- the right one to be 255.
-
- To turn Word Wrap off, place a ~WRAP OFF~ code into the form at
- the appropriate place. If you want to change margins at that point,
- you should place a ~MARGINS t,l,b,r~ code right after it.
-
- Word Wrap's operation is fairly straightforward. When the line
- that PopForm is printing comes within 9 characters of the right margin
- you've designated, it begins looking for a blank space or hyphen. As
- soon as one is encountered, PopForm sends a carriage return and line
- feed to the printer. If no blank space or hyphen is encountered be-
- fore the line is 5 characters LONGER than the right margin you speci-
- fied, PopForm will arbitrarily break the word and insert a hyphen.
- Therefore, PopForm may occasionally break long words (>14 characters)
- at awkward points. So, don't use big words too often in the forms
- that PopForm will print.
-
- Remember, PopForm ignores all line feeds contained in the form
- it's printing under Word Wrap's control. So how can you FORCE PopForm
- to issue a line feed and carriage return, despite the fact that Word
- Wrap is on? Answer: the ~<~ code. Just place a ~<~ wherever you
- want. For example, if you want a blank line between paragraphs, each
- paragraph should be preceded by two ~<~ codes. Take a look at
- LETTER.FRM to see how these codes are used.
-
-
- - Printer Codes
-
- There may be times when you need to switch from 1/6" to 1/8"
- spacing, and back. You may need to change fonts in the middle of a
- page, or even in mid-line. Or you may occasionally need to underline
- what's printed. In order to handle these changes, you'll have to
- utilize PopForm's special printer control tilde codes. And, of
- course, you'll also have to be familiar with the decimal code se-
- quences recognized by your printer.
-
- If you want to place printer control codes into your forms, enter
- each as a series of 3-digit numbers. Each such sequence must begin
- with "~PRINTCODE ", and end it with a tilde. Assume that the con-
- trol code you want to send your printer is "27 69" (ESC E). To send
- that code, you should actually place into your form this character
- sequence:
-
- ~PRINTCODE 027069~
-
-
-
- PUTTING IT ALL TOGETHER 21
-
-
-
-
- Note that "027069" is used, not "2769", "27 69" or "27,69". Use se-
- quences consisting of three-digit numbers only. See CHECK.FRM for an
- example of this code sequence. The control code sent by CHECK.FRM is
- designed to place an Epson-compatible printer into the proper mode to
- print IBM graphic characters.
-
-
- - Graphics
-
- You may occasionally need to place graphics symbols into your
- form. Though this may be an unfamiliar chore, you'll find your word
- processor fully capable of handling it. The trick is to figure out
- how, so dig out that manual and look.
-
- Some word processors will display graphics symbols as odd-looking
- characters. Don't worry, when they're printed out, they'll look just
- fine -- assuming, of course, that your printer has been placed into its
- graphics printing mode. Some printers can't handle graphics at all.
- Some will print graphics in their default modes. And others, like the
- Epson-compatibles, are capable of graphics, but need to be given the
- proper command to go into that mode. That's why CHECK.FRM's first
- line contains a printer control code sequence to place Epson-compat-
- ible printers into graphics mode.
-
-
- - Date, Day of Week, Time
-
- If your form contains ~DATE~, ~WEEKDAY~, or ~TIME~, the compu-
- ter's current date, day of the week, or time will be be substituted at
- the appropriate spot on the form as it prints.
-
-
- - Keeping up with Totals
-
- PopForm will print any number you wish, whether it's contained in
- the form being printed or on the screen. But what if you need the
- program to keep tabs on running totals that accumulate during the
- processing of many screens'-worth of data? That's what the NUMx
- variables are for. There are nine of them, NUM1...NUM9. They are all
- set to zero with each new form that you prepare. From that starting
- point, each can be adjusted as you wish by performing mathematical
- operations on it. And each can be printed easily. Here are some
- examples:
-
- ~NUM1+10~ adds 10 to NUM1
- ~NUM2*3~ multiplies NUM2 by 3
- ~NUM8/4~ divides NUM8 by 4
- ~NUM8-NUM4~ subtracts NUM4 from NUM8 and keeps the
- result in NUM8
- ~NUM5~ prints NUM5
- ~NUM5CC~ clears NUM5 (reduces it to zero)
-
-
-
- PUTTING IT ALL TOGETHER 22
-
-
-
-
- What about ~NUM5=90~? That won't work! To give NUM5 a value of 90,
- you should use two operations: ~NUM5CC~~NUM5+90~. The first reduces
- NUM5 to zero, and the next adds 90 to it.
-
- If no mathematical operation is designated, the tilde code con-
- taining a NUMx variable tells PopForm to simply print the variable;
- otherwise, PopForm is being told to perform an operation. When per-
- forming mathematical operations the first operator must always be the
- NUMx variable.
-
- The precision with which NUMx variables will be printed may be
- set with the DECIMALS code. Examples
-
- ~DECIMALS 3~ causes PopForm to NUMx variables to 3
- decimal places
- ~DECIMALS 0~ no decimal places will be printed.
-
- PopForm's default is DECIMALS 2.
-
-
- - Alphanumeric variables
-
- PopForm will print any alphanumeric string you wish, whether it's
- contained in the form being printed or on the screen. But what if you
- need the program to remember a particular word or phrase and manipu-
- late it later. That's what the WRDx variables are for. There are
- nine of them, WRD1...WRD9. They all start out blank when you begin
- preparing a form. From that starting point, each can be adjusted as
- you wish by performing basic operations on it. And each can be prin-
- ted easily. Here are some examples:
-
- ~WRD1+"hello"~ adds "hello" at the end of WRD1
- ~WRD1-"hello"~ deletes "hello" from WRD1
- ~WRD5~ prints WRD5
- ~WRD5CC~ clears WRD5 (makes WRD5 blank)
-
- What about ~WRD5="hello"~? That won't work! To make WRD5 equal to
- "hello", you should use two operations: ~WRD5CC~~WRD5+"hello"~. The
- first makes WRD5 blank, and the next adds "hello" to it.
-
- If no operation is designated, the tilde code containing a WRDx
- variable tells PopForm to simply print the variable; otherwise, Pop-
- Form is being told to perform an operation. When performing opera-
- tions the first operator must always be the WRDx variable.
-
-
- - Feeding a new sheet of paper
-
- Whenever PopForm encounters the code, ~NEWPAGE~, it will send
- your printer the form feed command. If you want a new page to be fed
- only if the last line printed is within x lines of the bottom "margin"
- (see the Margins section above), the code should be, ~NEWPAGE x~,
-
-
- PUTTING IT ALL TOGETHER 23
-
-
-
-
- where x is a number.
-
-
- - Pausing for keyboard entry
-
- If, in the middle of a form, you want PopForm to ask you
- something, use the INPUT code. Whatever you enter at the keyboard
- will be placed into the printout. Consider the a form consisting of
- one line:
-
- ~TIME~, ~DATE~ ~INPUT "Your Name: "~
-
- In this example, PopForm would print the computer's time and date.
- Then, it would print several blank spaces, pause, and display the
- phrase, "Your Name: ", on the screen. When you entered your name,
- PopForm would print it at the point at which it had just paused. If
- the command had been ~[20]INPUT "Your Name: "~, PopForm would have
- printed the first 20 characters of your name (if you name were fewer
- than 20 characters, PopForm would have padded it with spaces).
-
- The phrase you specify with the INPUT code will be displayed on
- the third line of the PopForm window. If a one-line phrase isn't
- enough, you should use the ~WRITELN x~ code just before INPUT.
- WRITELN will display phrase x on the first line of the window, unless
- that line has already been filled by a previous WRITELN instruction
- (in which case phrase x will be displayed on the second line). By
- placing two WRITELN codes just before an INPUT code, you can display a
- three-line prompt.
-
-
- - Blocking off text
-
- If you want the ability to highlight a certain block off text on
- the screen and send it to the printer, use the ~BLOCK~ code. When
- PopForm encounters that code, it will place a flashing block-type cur-
- sor at the top-left corner of the screen. Use the arrow keys to move
- the cursor to the point that you wish to designate as the top-left
- corner of the block to be printed and press the space bar. Then, move
- to the bottom-right corner of the block. As you move, you'll notice
- that the block is highlighted. Hitting the Enter key will cause the
- highlighted text to be sent to the printer.
-
- If you want the text that's printed to be lined up at a certain
- left margin, be sure to put a ~MARGINS code (see the Margins section)
- just before the ~BLOCK code. Then, reset the margins by placing an-
- other ~MARGINS code after the ~BLOCK code. Example:
-
- ~MARGINS=1,10,255,255~ sets default margins, except left margin
- ~BLOCK~
- ~MARGINS=1,1,255,255~ sets default margins all around
-
-
-
-
- PUTTING IT ALL TOGETHER 24
-
-
-
-
- - Printing another file
-
- When PopForm encounters the code, ~FILE x~, it will cease
- printing the current form and begin printing file x. Example:
-
- ~FILE 2d.fil~
-
- This code would tell PopForm to immediately find the file named,
- "2D.FIL" and begin printing it. If one file sends PopForm to another,
- the only way to get back is to have the second file send PopForm back
- to the first.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PUTTING IT ALL TOGETHER 25
-
-
-
-
- FOR PROGRAMMERS ONLY
-
- PopForm has some simplistic programming features that allow it to
- react to certain conditions. Let's assume that you want the program
- to read the character at a certain screen location and compare it to a
- character that you define. If the characters match (or DON'T match,
- if you prefer), you can have PopForm stop printing, skip down to a
- certain line (identified by a LABEL), and then continue printing.
-
- All this can be done by using IF in conjunction with the GOTO,
- GOSUB..RETURN, and DO..UNTIL, tilde codes. This version of PopForm
- allows GOSUBs and DO loops to be nested up to three levels deep.
-
- You may notice that, as PopForm is sending a form to the printer,
- it's pop-up box rapidly flashes on and off. What's happening is this:
- When a GOTO, GOSUB, or DO statement is being executed, PopForm needs
- to move to different locations in the form. As it does so, it dis-
- plays a message explaining what it's doing. When it finds the proper
- location, the screen is cleared, so that PopForm may read it. All
- this may happen very quickly, especially if PopForm is working with
- small files. If, for some reason, PopForm can't find the proper loc-
- ation, it will appear to "hang up". In this case, all you normally
- have to do is to press the ESC key. Then, look at the file that Pop-
- Form was accessing and try to fix it's programming logic.
-
-
- - Labels
-
- Labels mark important points in your file. They can be of great
- benefit when used in conjunction with the IF, GOTO, and GOSUB state-
- ments. If, for instance, certain characters or values appear on your
- screen, you might want PopForm to skip to a certain point in the file
- and resume printing. If the screen contains other data, you might
- want to skip to another section (or even to another file, altogether).
-
-
- - IF statements
-
- IF statements do comparisons. When PopForm encounters an IF
- statement, it reads the string of characters between the "IF" and the
- comparison expression ( =, <, >, or <> ). It makes the appropriate
- comparison between that string and the string of characters following
- the comparison expression. If, and only if, the comparison is true
- (eg: equal, if you specify =, or not equal if you specify <>), the
- NEXT FOLLOWING tilde code will be executed. If the comparison is not
- true (eg: not equal if you specify =, or equal if you specify <>), the
- following tilde code will be SKIPPED. Examples:
-
- ~IF 1=NUM2~~GOTO END~ Now is the time...
- If NUM2=1, then PopForm will go to
- the position in the form identified
- by an END label (~LABEL END~). Other-
-
-
- FOR PROGRAMMERS ONLY 26
-
-
-
-
- wise, it will continue on to print,
- " Now is the time...".
-
- ~IF "david"<>(RC-0512,5)~~GOSUB DAVE~
- If the five characters located at
- screen coordinates 0512 do not match
- "david", then PopForm will execute the
- subroutine beginning at ~LABEL DAVE~.
- (see the GOSUB discussion below)
-
- ~IF ESC=NEWSCREEN "Press a Key: "~~GOTO END~
- If, when the NEWSCREEN function was
- displaying, "Press a Key: ", you
- pressed the ESC key, PopForm would go
- to the END label.
-
- If the first string of characters to be compared is a number,
- PopForm will attempt numerical comparison. If it's a date, it will
- attempt to compare dates. Otherwise, it will compare words or phrases
- (ignoring capitalization). PopForm recognizes dates in only three
- formats, demonstrated as follows:
-
- 12 September 1992: 12 SEP 92 (day month year)
- (use first 3 letters of month)
- 9/12/92 (month/day/year)
- 9-12-92 (month-day-year)
-
-
- Whenever PopForm encounters an IF statement, it knows that it
- needs to perform a comparison of TWO, and ONLY TWO items. If one of
- the things to be compared is a known quantity (such as the ESC key, or
- a particular word or number for which you're looking), that item must
- appear to the LEFT of the operator ( =, <>, <, > ). The variable
- against which you're comparing the known quantity must always be to
- the right of the operator. If two variables are being compared, place
- to the left of the operator the one that does NOT require PopForm to
- pick data from the screen or from your keyboard. If both (or neither)
- items are variables requiring keyboard or screen scanning, the order
- is not important. Finally, any attempt to compare items that can't
- logically be compared may have unpredictable results.
-
-
- - GOSUB routines
-
- When PopForm encounters ~GOSUB x~ code, it immediately finds the
- position in the file identified as ~LABEL x~. It executes everything
- between that point and the next ~RETURN~ code. Then, it returns to the
- spot in the file just following the ~GOSUB x~ code and continues its
- way through the file. Example:
-
- This is the beginning.
- ~GOSUB FILLER~
-
-
- FOR PROGRAMMERS ONLY 27
-
-
-
-
- And now I'm done.
- ~GOTO END~
- ~LABEL FILLER~
- Here's some filler material.
- Now, I'll return.
- ~RETURN~
- ~LABEL END~
-
- This sequence would cause the following to be printed:
-
- This is the beginning.
- Here's some filler material.
- Now, I'll return.
- And now I'm done.
-
-
- - DO loops
-
- Each DO loop maintains its own counter, which is initialized at
- a value of one when the DO loop begins execution. Whenever PopForm
- encounters a ~DO~ code, it will continue its work until it reaches an
- ~UNTIL COUNT x~ code. Then, it will increase its counter by 1 and
- compare that value against x. If the counter is less than or equal to
- x, PopForm will then go to ~DO~ code and begin the process again.
- When the counter is finally greater than x, PopForm will break out of
- the DO loop.
-
- As DO loops are processing, you may ask PopForm to do certain
- things, depending upon what the counter's current value is. Just use
- an IF code to do so. Example:
-
- ~IF 2=COUNT~~GOTO TWO~...counter not equal to 2
- If the counter's value is 2, PopForm
- will skip immediately to the file
- position identified by ~LABEL TWO~;
- otherwise, it will print,"...counter
- not equal to 2".
-
- Note that COUNT must always be the SECOND value compared, never the
- first. You may execute GOSUB routines that are outside the DO loop,
- but all GOTO's contained within a DO loop must refer to labels that
- are also within the DO loop.
-
-
- - Programming Example
-
- Programming is potentially an extremely frustrating endeavor.
- You'll undoubtedly have to do a lot of trial and error work when you
- work on even mildly complicated forms. But if you stick with it,
- you'll be glad that you did.
-
- Take a look at PROGRAM.FRM, FEDEX.FRM, and WILL.FRM. Copy them
-
-
- FOR PROGRAMMERS ONLY 28
-
-
-
-
- to into files with different names and have fun experimenting with the
- copies. Also copy TESTDATA and WILLDATA to other files, so that you
- can experiment with them, too. Be sure to use only an ASCII-type
- editor, or you'll be wasting your time.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FOR PROGRAMMERS ONLY 29
-
-
-
-
- PREPARING LONG FORMS
-
- First, write your form without any codes. When it's done, go
- through it again, this time substituting codes where appropriate.
-
- If the form has lots of variables to be plugged in by PopForm, it
- is recommended that you direct PopForm to use Word Wrap. Turn it on
- and set your margins at the beginning of the form. And be sure to use
- the ~<~ code wherever you REQUIRE a line feed and carriage return;
- otherwise, PopForm will try to place everything into the same para-
- graph.
-
- As you write your form with your word processor, make sure that
- you don't break words with hyphens at the end of lines. When PopForm
- sends the form to the printer, each line containing a variable my end
- up with a length different from what you had anticipated. A word
- that you had originally broken with a hyphen at the end of a line may
- end up in the middle of a line on the printed sheet.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PREPARING LONG FORMS 30
-
-
-
-
- COMMON ERRORS
-
- - Improper vertical spacing between lines. This is particularly a
- problem when you're creating a complicated form that uses lots of
- programming logic. The problem is that you aren't thinking through
- the form's process well enough. There may be places where PopForm
- will issue a line feed when you don't want it to. Locate those spots
- and place a ~\~ at the end of the line. If PopForm ISN'T issuing
- line feeds where you expect, use the ~<~ code at the end of each line
- where you want the line feed.
-
- - Improper horizontal spacing on a line. You probably haven't antici-
- pated the lengths of an item that PopForm will plug into the form.
- As a result, subsequent printing on that line will not be aligned
- properly. Try using the ~\~ and ~+~ codes to join and overwrite
- lines. Make a test file to experiment with these codes. Then, when
- you understand how they work, place them into a "real" form.
-
- - Failure to place a tilde (~) at each end of a code. This causes all
- sorts of problems, as PopForm attempts to decipher everything between
- two tildes.
-
- - Omission of the word LABEL from codes intended as labels.
-
- - Failure to end a subroutine (called by GOSUB) with a RETURN code.
-
- - Failure to end a DO loop with an UNTIL statement.
-
- - Failure to follow each code's recommended syntax.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- COMMON ERRORS 31
-
-
-
-
- CUSTOMIZING POPFORM
-
- To customize PopForm, you need to load the program by entering
- the following at the DOS prompt:
-
- PopForm $08xxxx
-
- where each "x" represents a letter or number, as explained in the
- following sections.
-
- Note that you need to make this special entry only once. From
- then, on, PopForm may be loaded merely by entering "PopForm" at the
- DOS prompt.
-
- HOTKEY
-
- PopForm's default hotkey is ALT-F. To change it, substitute for
- the third "x" the new key you wish to use in combination with the ALT
- key. Also substitute for the first two x's the scan code for that
- key. You'll need to consult with a DOS manual to find a complete list
- of scan codes, but here are a few:
-
- Q=10 W=11 E=12 R=13 T=14 Y=15 U=16 I=17 O=18
- P=19 A=1E S=1F D=20 F=21 G=22 H=23 J=24 K=25
- L=26 Z=2C X=2D C=2E V=2F B=30 N=31 M=32
-
- Example: To make ALT-Q the hotkey, you should enter "PopForm
- $0810Q..." at the DOS prompt. Here, "Q" takes the place of the third
- "x", and its scan code (10) takes the place of the first two.
-
- To use the CTRL key in place of the ALT key, substitute "$04" for
- "$08". The Left Shift key is $02, and Right Shift key is $01.
-
- COLORS
-
- You may designate the primary colors used by PopForm. The fore-
- ground color's code substitutes for the fifth "x", while the back-
- ground is contained at the sixth position. The color codes you may
- use are:
-
- 0 Black 1 Blue 2 Green 3 Cyan
- 4 Red 5 Magenta 6 Brown 7 Light Gray
-
-
- DEFAULT SETTING
-
- PopForm's default customizing instruction is, "$0821F70":
- 21=the scan code of the F key used (with ALT) to invoke PopForm
- F =the F key
- 7 =light gray (foreground color)
- 0 =black (background)
-
-
-
- CUSTOMIZING POPFORM 32
- THE "POWER OFFICE" LINE-UP
-
- Each unique program in this series requires a hard disk-equipped IBM-compatible
- PC with 512K of memory. The following paragraphs contain brief descriptions.
-
- TickleX --> the ultimate in scheduling/planning/docket control
- MT-Tracker --> TickleX's scheduling power, plus client management
- BillPower --> time & billing with totally integrated general ledger
- RAMdesk --> pop-up network message system, calculator, scheduler,
- phone directory, time/work/expense log, data base
- PopForm --> pop-up form printing program.
- Nifty --> combination menu and pop-up help system
-
-
- BILLPOWER and BILLPOWER PLUS
-
- BillPower is a system designed to relieve you of the drudgery involved in
- billing. In a nutshell, it will track the time you work on professional mat-
- ters, keep up with your receipts and disbursements, and calculate the amount
- owed by each client. And it will automatically prepare informative monthly
- statements for all your clients. All on either a stand-alone or pop-up basis!
-
- Engineered exclusively for the small firm, this innovative software offers
- a rare combination of power and ease of use at a fair price. Unlike programs
- that attempt to electronically emulate ancient manual accounting procedures,
- BillPower is designed to capitalize upon the power of your computer. If you
- are an "old hand" at bookkeeping, then open your mind to a real-time system
- which immediately updates all balances at the time an entry is made; one that
- does not require periodic batch postings or annual close-outs; one that pro-
- vides a convenient method for correcting erroneous entries; a system that never
- erases old data in the interest of consolidation. You'll find both BillPower
- and BillPower Plus to be advanced products.
-
- --> BillPower ($100): time, billing, & bookkeeping for firms with
- up to three timekeepers -- includes bank account management,
- income-expense reports, balance sheets, & several bill formats.
-
- --> BillPower Plus ($150): time, billing, & bookkeeping for firms
- with up to fifteen timekeepers -- builds upon BillPower's fea-
- tures, adding the abilities to keep extensive indexed memos on
- any subject, maintain notes on thousands of people, conduct con-
- flict of interest checks, prepare mailing labels, and more.
-
- BillPower can prepare several types of reports. Whenever you request
- one, you will be presented with a screen listing the parameters by which you
- can choose the information to be included. After you have selected the appro-
- priate parameters, BillPower will hunt through its data base for informa-
- tion meeting your specifications. The report may be sent to the screen, the
- printer or to a disk file.
-
- Finally, while other time and billing programs may offer "links" to exter-
- nal accounting software, BillPower completely integrates its bookkeeping func-
- tions into the rest of the program. In fact, BillPower Plus can simultaneously
- update affected G/L accounts (as well as a client's balance and aged receiv-
- ables) at the time that a disbursement or receipt is entered. This "real-time"
- approach to bookkeeping, virtually unprecedented in a time and billing program,
- saves you the time you would otherwise spend making duplicate G/L entries, pos-
- ting transactions, and/or transferring files from one program to another. With
- BillPower Plus, a SINGLE entry can handle all the updating that needs to be
- done. No other program offers such a degree of integration. NONE!
-
-
- TICKLEX
-
- TickleX ($50) is a tickler/calendar program that will keep track of your
- appointments and deadlines, print your itinerary at the beginning of each day
- day, keep a "to-do" list, and chart the projected course of each matter you
- handle. It will also schedule trips and vacations, print weekly and monthly
- calendars, and beep at you when something needs doing. Stand-alone or POP-UP.
-
- TickleX is unusual in its ability to dynamically link reminders to ap-
- pointments and deadlines. Assume, for example, that you have a very important
- meeting scheduled for 15 August. As with other programs, you could establish
- reminders several days or weeks in advance to allow adequate preparation for
- the meeting. For the purposes of this example, let's say that you have entered
- a reminder one week in advance and another two weeks in advance. Now, what
- happens if the meeting is moved forward one week to 22 August? Again, all tic-
- kler programs would allow you to reschedule it. But TickleX will also
- automatically update the two reminders, moving each one week forward in order
- to maintain the original reminder intervals. Other programs would require you
- to search for each reminder, delete it, and then enter it again on another
- date. This TickleX exclusive is an absolute "must" for offices that have fre-
- quent schedule changes.
-
- TickleX is also unique in the way it handles multi-day events. TickleX
- allows you to enter an event such as a week-long trip with just one entry.
- Other programs might require a separate entry to be made for each day of the
- trip. If your trip plans change, you need change only a single entry if you
- have TickleX.
-
- TickleX even has built-in project planning. No fancy charts, mind you.
- Just a very simplistic means of linking and updating related events. And it's
- completely integrated into the TickleX system. All project updates are auto-
- matically incorporated into the same schedule that contains appointments, dead-
- lines, vacations, etc.
-
- Add to these features an attractive user interface, the ability to attach
- extensive notes to each scheduled event, a number of other nice touches, and
- TickleX comes up a winner. Whether you're an executive looking for a powerful
- centralized personnel scheduler, a busy entrepreneur needing an easy-to-use
- tickler system, or a lawyer seeking the ultimate docket control software, Tick-
- leX is the program for you. There isn't a more robust scheduler available at
- any price. At only $50, it's a steal.
-
-
- MT-TRACKER
-
- MT-Tracker is the ideal client tracker and scheduler. It integrates the
- scheduling power of TickleX with the ability to track several thousand clients,
- companies, contacts, projects, or jobs. Also included is a note-keeping module
- that will link memos to the dates and clients to which they apply.
-
- In addition to the expected name, address, phone, and contact information,
- each client record has space for six full lines of miscellaneous data and nine
- USER-CUSTOMIZABLE fields. And each note kept in the Note-keeping module may
- contain up to seventeen lines of information.
-
- Because MT-Tracker is an integrated system, you can easily zip from one
- module to another. Assume, for instance, that you're looking at Mr. Smith's
- record, and you'd like to see everything (not just one or two items) scheduled
- for him during the coming month. A few keystrokes later, what you need will be
- displayed on your monitor or sent to your printer. When you're finished look-
- ing at the schedule, press a key to re-display Mr. Smith's record. Notes and
- logged events, income, and expenses are just as easily accessed.
-
- If you're a sales representative, consultant, personal injury lawyer, or
- anyone else who needs to track clients, customers, or jobs, this is the soft-
- ware you've been waiting for. Give it a try.
-
-
- RAMDESK
-
- RAMdesk ($50) is a handy "pop-up" program that contains a number of
- features useful in a business environment. It will:
-
- --> if used on a network, instantly send and receive messages;
- --> schedule and review upcoming events on a pop-up basis, allowing
- up to 20 alarms per day;
- --> maintain a pop-up record of income, expenses, and the time spent
- working on various projects;
- --> provide a pop-up address and phone directory, giving you instant
- access to records on hundreds of people;
- --> provide a pop-up programmable calculator with a 50-line "tape";
- --> allow you to establish numerous pop-up databases, such as to-do
- lists, general ledger account listings, etc.
-
- Once RAMdesk is installed (it needs 7 to 45K), it's instantly avail-
- able at the touch of a hot-key combination. It may be called up from with-
- in most word processors, spreadsheets, and other primary applications. If
- you also happen to have BillPower and TickleX, you'll find that RAMdesk
- ties in beautifully with them. Whatever appointments or deadlines you've
- scheduled with RAMdesk will be automatically picked up by TickleX, while
- BillPower will automatically take in the services, expenses, and receipts
- you've logged with RAMdesk. TickleX and BillPower can even assimilate en-
- tries made into RAMdesk by users on other computers around the office. If
- the computers are networked, the assimilation will be handled automatically;
- otherwise, you may use floppy disks to transfer the data between each "sate-
- llite" computer and the main database on another machine.
-
-
- RESEARCH
-
- ReSearch ($50) is a program designed to help you keep track of research,
- chronologies, and evidence. When you enter an item of research, you may tell
- ReSearch such things as the source, page, and line number where that item can
- be found. You may also enter an eleven-line summary of the item and indicate
- the subject category into which the item falls.
-
- A prime use of this program is to create printouts of research data, sor-
- ted alphabetically by subject abbreviation. Another use is to keep tabs on
- documents and other evidence (who sent it, who received it, its current loca-
- tion, etc.). It can also be used to prepare a chronological report of a se-
- quence of events which may have been entered at random into the data base.
- Finally, it can scan depositions provided to you on disk in industry-standard
- ASCII format and transfer verbatim text directly from the depositions to its
- data base.
-
-
- NIFTY
-
- Nifty ($50) is a unique program that may be used as either a pop-up Help
- system or a DOS menu. It combines an elegantly simple and attractive user in-
- terface (much appreciated by the inexperienced user) with a consistent, flex-
- ible means of set-up (benefiting the system integrator).
-
- As a Help system, Nifty can, at the touch of a key or two, provide the
- user with on-line assistance on any subject (assuming that appropriate help
- files have been created by the person installing the system). Since the Help
- system is memory-resident, it may be accessed from within nearly any other ap-
- plication.
-
- Simplicity is also the rule when Nifty is used as a Menu system. A single
- keystroke can execute any program or read any file on the computer. Some menu
- systems may be easier to set up, but few provide such flexible screen-creation
- facilities, and none are easier to use once they're installed. With Nifty, you
- may "draw" your own menus and place into them any messages you desire. You may
- use either passwords or "security levels" to control access to sub-menus. You
- you may even set a timer to automatically execute any program at any time.
-
- If you know a computer novice, you know a candidate for using this handy
- product. And if you understand DOS paths and file extensions, you know enough
- to set up a Nifty Help or Menu system, yourself.